iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0

  Python 中,除了 Matplotlib 適合用於資料視覺化之外,Seaborn 也是一個好用的函式庫,兩者經常會放在一起介紹或者使用,今天就和大家聊聊 Seaborn 的厲害吧!

■ 說明

  Seaborn 是 Python 中另一個強大的繪圖套件,建立於 Matplotlib 的基礎上,提供更簡單、更高級、更美觀的圖表製作,支援 Pandas 的 函式庫,對於需要資料分析的使用者來說更加好用!

  • 安裝套件:於 VS Code 的 Terminal 中輸入 pip install seaborn
  • 檢查套件:於 VS Code 的 Terminal 中輸入 pip list,查看是否有 Seaborn 。
  • 常用語法與參數:

https://ithelp.ithome.com.tw/upload/images/20231008/20162238YY8DmeTVKD.jpg

https://ithelp.ithome.com.tw/upload/images/20231008/20162238XRlmk660po.jpg

■ 實作|折線圖 line plot

  1. 使用時機:時間、趨勢、比較多個數據的變化
  2. 舉例:台北和高雄的月平均溫度比較圖
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# 載入資料
data = {'month': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep'],
        'Taipei': [16, 17, 19, 22, 25, 28, 30, 29, 27],
        'Kaohsiung': [19, 20, 23, 25, 27, 28, 32, 30, 28]}
df = pd.DataFrame(data)

# seaborn 設定
sns.set_style('white')
sns.lineplot(data=df,x='month',y='Taipei',label='Taipei',marker='s',linestyle=':')
sns.lineplot(data=df,x='month',y='Kaohsiung',label='Kaohsiung',marker='o')

# matplot 合作
plt.title('Monthly Average Temperature Comparison')
plt.ylabel('degree(°C)')
plt.show()

https://ithelp.ithome.com.tw/upload/images/20231008/20162238yW195SbT8O.png

■ 實作|長條圖 bar chart

  1. 使用時機:比較不同類別的差異或排名
  2. 舉例:台灣六都人口統計圖
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
data = {'city':['Taipei','New Taipei','Taoyuan','Taichung','Tainan','Kaohsiung'],
        'population':[2.5,4.03,2.3,2.83,1.85,2.73]}
df = pd.DataFrame(data)

# seaborn 設定
sns.set_style('white')
sns.barplot(data=df,x='city',y='population',palette='coolwarm')

# matplot 合作
plt.title('Population of Taiwan six cities')
plt.ylabel('population(million)')
plt.show()

https://ithelp.ithome.com.tw/upload/images/20231008/20162238AhvfZZeKJT.png

■ 實作|散布圖 scatter plot

  1. 使用時機:評估不同變數的相關性或辨識數據集中程度
  2. 舉例:評估單價和銷售量的情況
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
data = {'price':[50,80,100,120,150,180,200,230,250,300],
        'sales':[100,90,80,70,60,30,20,15,10,0]}
df = pd.DataFrame(data)

# seaborn 設定
sns.set_style('white')
sns.scatterplot(data=df,x='price',y='sales',marker='s',color='#5f9ea0')

# matplot 合作
plt.title('Price & Sales Analysis')
plt.ylabel('price(TWD)')
plt.show()

https://ithelp.ithome.com.tw/upload/images/20231008/20162238laHRUnl1D8.png

■ 實作|熱力圖 heatmap

  1. 使用時機:呈現數據的相關性
  2. 舉例:載入內建資料集 flights,並製作熱力圖
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# 載入資料
data = sns.load_dataset('flights')
df = data.pivot_table(index='month',columns='year',values='passengers')

# seaborn 設定
sns.heatmap(data=df,annot=True,cmap='Pastel1',fmt='d',linewidths=0.2)

# matplot 合作
plt.title('Flights Heatmap')
plt.show()

https://ithelp.ithome.com.tw/upload/images/20231008/20162238FtyJ0PEUGD.png

■ 結語

  從今天的內容可以發現,Seaborn 雖然提供更簡單的操作和更美觀的圖表,但其運作過程仍需要搭配 Matplotlib 使用,因此,學習兩種資料視覺化的工具將有效協助邦友們完成分析報告!

  我是 Eva,一位正在努力跨進資料科學領域的女子!明天開始將進入刷題篇,一起來挑戰吧!【本篇文章將同步更新於個人的 Medium,歡迎留言追蹤拍手!】


上一篇
Day 22|資料視覺化 - Matplotlib
下一篇
Day 24|Interview Query - Good Grades and Favorite Color
系列文
Pandas|資料前處理工具 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言